home *** CD-ROM | disk | FTP | other *** search
- unit OvrEdit;
- interface
- uses
- WinProcs,WinTypes,Messages,SysUtils,Classes,Graphics,Controls,Forms,
- Dialogs,StdCtrls,Mask,DBCtrls;
- type
- TInsertModeChangeEvent = procedure(Sender:TDBEdit;
- isInsert:Boolean) of object;
- TOvrDBEdit = class(TDBEdit)
- private
- FInsertMode: boolean;
- FOnInsertModeChange: TInsertModeChangeEvent;
- procedure SetInsertMode(value: boolean);
- protected
- procedure KeyDown(var Key: Word; Shift: TShiftState); override;
- procedure KeyPress(var Key: Char); override;
- public
- { Public declarations }
- published
- property InsertMode: boolean
- read FInsertMode write SetInsertMode;
- property OnInsertModeChange: TInsertModeChangeEvent
- read FOnInsertModeChange write FOnInsertModeChange;
- end;
-
- procedure Register;
-
- implementation
-
- procedure TOvrDBEdit.SetInsertMode(value: boolean);
- begin
- if FInsertMode <> value then begin
- FInsertMode := value;
- if Assigned(FOnInsertModeChange) then
- FOnInsertModeChange(Self,FInsertMode);
- end;
- end;
-
- procedure TOvrDBEdit.KeyDown(var Key: Word; Shift: TShiftState);
- begin
- inherited KeyDown(Key,Shift);
- if (Key = VK_INSERT) then InsertMode := not InsertMode;
- end;
-
- procedure TOvrDBEdit.KeyPress(var Key: Char);
- begin
- inherited KeyPress(Key);
- if (not InsertMode) and not (Key in [#8,#0]) then SelLength := 1
- else SelLength := 0;
- end;
-
- procedure Register;
- begin
- RegisterComponents('Samples',[TOvrDBEdit]);
- end;
- end.
-